package Year22_Month06.day17;

public class 二叉树的最小深度_递归写法 {
    public int minDepth(TreeNode root) {
        return DFS(root);
    }

    public int DFS(TreeNode root){
        if(root == null) return 0;//如果当前节点为叶子结点就返回0
        //如果当前节点的左子树不为空，右子树为空那就往左遍历
        if(root.left != null && root.right == null) return DFS(root.left) + 1;
        //如果当前节点的右子树不为空，左子树为空那就往右遍历
        if(root.left == null && root.right != null) return DFS(root.right) + 1;
        //如果都不为空就选择小的哪一个
        return Math.min(DFS(root.left),DFS(root.right)) + 1;
    }
}
